1. Field of the Invention
This invention relates to wireless communication systems and, more particularly, to a digital modulation system that uses an extended code set to encode information.
2. Description of Related Art
A wireless communications channel can rarely be modeled as purely line-of-site. Therefore, one must consider the many independent paths that are the result of scattering and reflection of a signal between the many objects that lie between and around the transmitting station and the receiving station. The scattering and reflection of the signal creates many different xe2x80x9ccopiesxe2x80x9d of the transmitted signal (xe2x80x9cmultipath signalsxe2x80x9d) arriving at the receiving station with various amounts of delay, phase shift and attenuation. As a result, the received signal is made up of the sum of many signals, each traveling over a separate path. Since these path lengths are not equal, the information carried over the radio link will experience a spread in delay as it travels between the transmitting station and the receiving station. The amount of time dispersion between the earliest received copy of the transmitted signal and the latest arriving copy having a signal strength above a certain level is often referred to as delay spread. Delay spread can cause intersymbol interference (ISI). In addition to delay spread, the same multipath environment causes severe local variations in the received signal strength as the multipath signals are added constructively and destructively at the receiving antenna. A multipath component is the combination of multipath signals arriving at the receiver at nearly the same delay. These variations in the amplitude of the multipath components is generally referred to as Rayleigh fading, which can cause large blocks of information to be lost.
Digital modulation techniques can be used to improve the wireless communication link by providing greater noise immunity and robustness. In certain systems, the data to be transmitted over the wireless communication link can be represented or encoded as a time sequence of symbols, where each symbol has M finite states, and each symbol represents n bits of information. Digital modulation involves choosing a particular code symbol from the M finite code symbols based on the data bits of information applied to the modulator. For M-ary keying schemes, log2M bits of information can be represented or encoded by M different codes or code symbols of at least M chips long. The codes are transmitted and received as several delayed replicas of the transmitted codes, and the receiver correlates the delayed versions of the received codes with the known codes.
Autocorrelation sidelobes show the correlation values between the known codes and the time shifted replicas of the received codes. For example, for a code (111-1), the autocorrelation for a zero shift is:
For a shift of one chip, the autocorrelation is:
For a shift of 2 chips, the autocorrelation is:
For a shift of 3 chips, the autocorrelation is:
Larger shifts give an autocorrelation value of zero, so the maximum autocorrelation sidelobe in this example has a value or magnitude of 1. In this example, xe2x88x921""s are used in the receiver instead of 0""s. The autocorrelation sidelobes give an indication about multipath performance. If the autocorrelation sidelobes are large, several multipath components heavily interfere with each other. Cross-correlation refers to a code being correlated with different codes. As such, if the cross-correlation between codes is high, then the different codes will interfere with each other.
M-ary orthogonal keying is a form of digital modulation which provides good cross-correlation between codes by encoding data using orthogonal codes which do not interfere with each other. FIG. 1 shows a general block diagram of an M-ary orthogonal keying system 10. In this example, input data is scrambled by a scrambler 12 as specified in the current (1997) Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard. The data is then provided to a serial-to-parallel converter 14 which converts the serial data into 8 parallel bits forming a data symbol. A first modulator 16 receives three (3) of the parallel bits and produces a code of length 8 chips from a look-up table, and a second modulator 18 receives three (3) of the parallel bits and produces a second code of length 8 from a look-up table. Chips are actually code bits, but they are called chips to distinguish them from data bits. In this implementation, one of the parallel bits is provided to a first exclusive-or (XOR) gate 20 which inverts the code from the first modulator 16 if the bit has a value of one. Similarly, the last remaining bit is provided to a second XOR gate 22 which inverts the code from the second modulator 18 if the bit has a value of one. In this embodiment, the output Iout of the XOR gate 20 is applied to signal circuitry 21 to convert all 0""s to xe2x88x921""s for transmission. The circuitry 21 can also manipulate, convert and/or process Iout before being used to modulate a carrier with frequency xcfx89 by mixer 24. The output Qout from the XOR 22 is applied to signal circuitry 23 to convert all 0""s into xe2x88x921""s for transmission. The circuitry 23 can manipulate, convert and/or process Qout before being used to modulate a 90 degrees shifted carrier by mixer 26. In this particular embodiment, the first modulator 16 corresponds to the in-phase (I) component of the output signal, and the second modulator 18 corresponds to the quadrature (Q) component of the output signal.
In the system, the modulators 16 and 18 are performing 8-ary orthogonal keying or encoding because each receive 3 bits of information and chooses one out of 8 orthogonal codes. By having both I and Q components with different polarities, a total of 256 possible code combinations exist, so a total of 8 bits can be encoded into one orthogonal code. The code set in the 8-ary orthogonal keying system is based on eight (8) Walsh codes of 8 chips in length. Using the 8 chip Walsh codes in an M-ary orthogonal keying (MOK) system is advantageous because the 8 chip Walsh codes are orthogonal, which means they exhibit zero cross-correlation, so the 8 chip Walsh codes tend to be easily distinguishable from each other. However, using the 8 chip Walsh codes reduces the coding gain for the system of FIG. 1 to below 10, and the United States Federal Communications Commission (FCC) requires a processing gain of at least 10 for transmission systems operating in the 2.4 GHz Industrial, Scientific and Medical (ISM) band. Processing gain can be simply measured by the number of chips per code symbol. For the MOK system to achieve a processing gain of at least 10, the code length should be at least 10 chips. However, if the MOK system is designed for code lengths of 10 chips or more, the data rate drops to less than 10 Mbps.
Another M-ary keying scheme encodes data bits using a Barker code (like used for the IEEE 802.11 standard for 1 and 2 Mbit/s). The operation is similar to the previously described MOK system with length 8 codes, except that the code length for the non-orthogonal Barker sequences is 11. By choosing one out of 8 time shifted Barker codes of length 11 chips for the in-phase and quadrature components and changing polarities, a total of 8 bits per symbol can be encoded. However, a symbol now consists of 11 chips instead of 8, so for the same chip rate the effective data rate is a factor 8/11 lower. This means that with code lengths of 10 chips or more, you cannot achieve a data rate of 10 Mbps or more as in the case of length 8 codes.
The present invention involves a digital (de)modulation system which uses a larger code set of M codes for N length codes, where M greater than N, to provide an increased data rate while maintaining the coding gain. For example, the system can use 16 different codes each having a length of 11 chips in a code set while the conventional M-ary keying systems use a code set size of 8 for 11-chip codes or 8-chip codes. By extending the code set size, the system increases the data rate of the system. With 16 codes and the ability to change the sign of the code to be transmitted, the system can encode 5 data bits on both I and Q, so a total of 10 data bits can be encoded per code symbol. In this embodiment, a code symbol contains an 11 chip code on an I modulation branch and an 11 chip code on a Q modulation branch. As such, using 11 chip codes and a chip rate of 11 Mhz, the system provides a data rate of 10 Mbps while conventional M-ary keying systems can only achieve 8 Mbps using the same code length and chip rate. By extending the code length, the processing gain is increased. The extended code set is not orthogonal, so a non-zero cross-correlation value results between the different codes of the code set. However, the resulting noise and multipath performance degradation can be kept small by choosing code sets with small cross-correlation values (nearly orthogonal). The magnitudes of both cross-correlation values and auto-correlation sidelobes should preferably be below half a code length. In some embodiments, the code set is derived from orthogonal codes which are modified to reduce the autocorrelation sidelobes associated with the orthogonal codes. In other embodiments, the code set is derived using a complementary code which provides low autocorrelation sidelobes and is modified to reduce the cross-correlation values between the codes.